package entity

import (
	"group-card/common/request"
	"time"
)

//region TODO:卡面  Author:LiuYanLin Date:2023/03/30 周四 16:34

type CardSkin struct {
	Id         int64     `xorm:"not null pk autoincr comment('主键ID') BIGINT(20)" json:"id"`                     // id
	Name       string    `xorm:"not null default '' VARCHAR(255) comment('名称')"        json:"name"`             // 名称
	FaceValue  int64     `xorm:"not null default 0 BIGINT(20) comment('面额(kg)')"  json:"face_value"`            // 面额(kg)
	Colour     string    `xorm:"not null default '' VARCHAR(255) comment('颜色')"      json:"colour"`             // 颜色
	CustomerId int64     `xorm:"not null default 0 BIGINT(20) comment('集团客户id')" json:"customer_id"`            // 集团客户id
	Type       int64     `xorm:"not null default 10 BIGINT(20) comment('类型 10实体卡片 20数字卡密')"        json:"type"` // 类型 类型 10实体卡片 20数字卡密
	Status     int64     `xorm:"not null default 10 BIGINT(20) comment('状态 10启用 20停用')"      json:"status"`     // 状态 10启用 20停用
	Image      string    `xorm:"not null default '' VARCHAR(255) comment('略缩图')"       json:"image"`            // 略缩图
	AdminId    int64     `xorm:"not null default 0 BIGINT(20) comment('创建人id')"    json:"admin_id"`             // 创建人id
	CreateAt   time.Time `xorm:"not null created comment('创建时间')"   json:"create_at"`                           // 创建时间
	UpdateAt   time.Time `xorm:"not null updated comment('更新时间')"   json:"update_at"`                           // 更新时间
	DeleteAt   time.Time `xorm:"not null deleted comment('删除时间')"   json:"delete_at"`                           // 删除时间
	OrgId      int64     `xorm:"not null default 0 BIGINT(20) comment('组织ID')"          json:"org_id"`
	Org1       int64     `xorm:"not null default 0 BIGINT(20) comment('一级组织ID')"          json:"org1"`
	Org2       int64     `xorm:"not null default 0 BIGINT(20) comment('二级组织ID')"          json:"org2"`
	Org3       int64     `xorm:"not null default 0 BIGINT(20) comment('三级组织ID')"          json:"org3"`
	Org4       int64     `xorm:"not null default 0 BIGINT(20) comment('四级组织ID')"          json:"org4"`
	Org5       int64     `xorm:"not null default 0 BIGINT(20) comment('五级组织ID')"          json:"org5"`
}

func (*CardSkin) TableName() string {
	return "card_skin"
}

//endregion

type CardSkinReq struct {
	Id              int64     `json:"id"`                                  // id
	Name            string    `json:"name"`                                // 名称
	FaceValue       int64     `json:"face_value"`                          // 面额(kg)
	Colour          string    `json:"colour"`                              // 颜色
	CustomerId      int64     `json:"customer_id"`                         // 集团客户id
	Type            int64     `json:"type"`                                // 类型 类型 10实体卡片 20数字卡密
	Status          int64     `json:"status"`                              // 状态 10启用 20停用
	Image           string    `json:"image"`                               // 略缩图
	AdminId         int64     `json:"admin_id"`                            // 创建人id
	CreateAt        time.Time `xorm:"not null created"   json:"create_at"` // 创建时间
	UpdateAt        time.Time `xorm:"not null updated"   json:"update_at"` // 更新时间
	DeleteAt        time.Time `xorm:"not null deleted"   json:"delete_at"` // 删除时间
	request.BaseReq `xorm:"-" json:"-"`
}

type CardSkinResp struct {
	Id         int64     `json:"id"`                                  // id
	Name       string    `json:"name"`                                // 名称
	FaceValue  int64     `json:"face_value"`                          // 面额(kg)
	Colour     string    `json:"colour"`                              // 颜色
	CustomerId int64     `json:"customer_id"`                         // 集团客户id
	Type       int64     `json:"type"`                                // 类型 类型 10实体卡片 20数字卡密
	Status     int64     `json:"status"`                              // 状态 10启用 20停用
	Image      string    `json:"image"`                               // 略缩图
	AdminId    int64     `json:"admin_id"`                            // 创建人id
	CreateAt   time.Time `xorm:"not null created"   json:"create_at"` // 创建时间
	UpdateAt   time.Time `xorm:"not null updated"   json:"update_at"` // 更新时间
	DeleteAt   time.Time `xorm:"not null deleted"   json:"delete_at"` // 删除时间
}
